/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.dmz.seguridad.ejb.dao;

import ec.dmz.seguridad.ejb.generico.Generico;
import ec.dmz.seguridad.ejb.model.Usuario;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;
/**
 *
 * @author Estiwar
 */
@LocalBean
@Stateless
public class UsuarioDao extends Generico<Usuario>{
     public UsuarioDao() {
        super(Usuario.class);
    }
    
    public List<Usuario> listarTodo() throws Exception {
        String jpaQl = "SELECT u FROM Usuario u"
                + " ORDER BY u.persona.apellidos";
        Query query = getEntityManager().createQuery(jpaQl);
        return query.getResultList();
    }

    public List<Usuario> listarTodoActivo() throws Exception {
        String jpaQl = "SELECT u FROM Usuario u"
                + " WHERE u.estado = true"
                + " ORDER BY u.persona.apellidos";
        Query query = getEntityManager().createQuery(jpaQl);
        return query.getResultList();
    }
    
    public List<Usuario> ObtenerPorLoginPassword(String login, String password) {
        String jpaQl = "SELECT u FROM Usuario u"
        + " WHERE u.usuLogin = :login AND u.usuClave = :password";
        Query query = getEntityManager().createQuery(jpaQl);
        query.setParameter("login", login);
        query.setParameter("password", password);
        return query.getResultList();
    }
    
    public Usuario recuperarPorId(Long id) throws Exception{
        String jpaQl = "SELECT u FROM Usuario u"
        + " WHERE u.usuId = :usuId";
        Query query = getEntityManager().createQuery(jpaQl);
        query.setParameter("usuId", id);
        return (Usuario) query.getSingleResult();
    }
    
    public List<Usuario> repuperarUsuarioPorIdList(List<Long> idList) throws Exception{
        String jpaQl = "SELECT u FROM Usuario u"
        + " WHERE u.usuId IN :idList ORDER BY u.usuId";
        Query query = getEntityManager().createQuery(jpaQl);
        query.setParameter("idList", idList);
        return query.getResultList();
    }
}
